Can An Anti-Corruption Layer Save Your Bad Software Architecture